package com.freework.buildercode;

import java.io.Serializable;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;


import com.alibaba.fastjson.JSONObject;
import com.freework.util.FileUtil;


import sun.misc.BASE64Encoder;

public class Test implements java.lang.Cloneable, Serializable {//

	Object[] test = {};
	int i = 0;
	String str = "";

	public static void main(String args[]) throws InstantiationException, IllegalAccessException{
//		List<Test> list=new ArrayList<Test>();
//		for (int i = 0; i <800; i++) {
//			Test test=new Test();
//			test.i=i;
//			test.str="aa"+i;
//			list.add(test);
//		}
//		
		Map map=new HashMap();
		Map type=new HashMap();
		type.put("xxx1", "String");
		type.put("xxx1", "Int");
		map.put("tablename:", "a");
		
		map.put("type",type);
		Map table1=new HashMap();

			map.put("data", Arrays.asList(table1,table1,table1));
			table1.put("xxx1", "111");
			table1.put("xxx2", 111.011);
		
			System.out.println(JSONObject.toJSONString(map));
		//Map map=(Map) JSONObject.parseObject("{\"table1\":{\"xxx1\":\"aaaa\",\"xxx2\":1}");
		//System.out.println(map.get("table1"));
		System.out.println("\u914D\u7F6E\u9519\u8BEF\uFF1A\u4E00\u4E2A\u6765\u6E90\u6570\u636E\u5143\u5BF9\u5E94\u5230\u4E86\u591A\u4E2A\u5B57\u6BB5");
		StringBuilder strBud=new StringBuilder();
		for (int i = 0; i <50000; i++) {
			strBud.append(i).append(",");
		}
		System.out.println(strBud.length());
		 byte[] b=FileUtil.compress(strBud.toString());
		 b=FileUtil.compress(b);
		 
		 BASE64Encoder encoder = new BASE64Encoder(); 
		System.out.println( encoder.encode(b).length());;
		
//		BASE64Encoder encoder = new BASE64Encoder(); 
//
//    	ByteArrayOutputStream bout=new ByteArrayOutputStream();
//    	try {
//			long starttime=System.currentTimeMillis();
//
//			ObjectOutputStream out=new ObjectOutputStream(bout);
//			out.writeObject(list);
//			byte[] bs=bout.toByteArray();
//			System.out.println(bs.length);
//
//			 bs=FileUtil.compress(bs);
//			 
//				System.out.println(bs.length);
//			 bs=FileUtil.compress(bs);
//			System.out.println(bs.length);
//			String str=(encoder.encode(bs));
//			System.out.println(str.length());
//			 System.out.println(System.currentTimeMillis()-starttime);
//			// System.out.println(str);
//			
//			
//			
//			BASE64Decoder decoder = new BASE64Decoder(); 
//			bs=decoder.decodeBuffer(str);
//			 bs=FileUtil.decompress( FileUtil.decompress(bs));
//			 
//			 
//			 
//			 
////			 
//		  public void setClob( final String content,final String blobColumn,final String keyColumn, final int keyValue,final String table)
//		    {
//		       
//		        	super.getHibernateTemplate().execute(
//		    				new HibernateCallback() {
//
//		    					public Object doInHibernate(Session session)
//		    							throws HibernateException, SQLException {
//		    						 String SQL = "SELECT " + blobColumn + " FROM " + table + " WHERE " + keyColumn +"=? FOR UPDATE ";
//		    					        java.sql.PreparedStatement stmt = null;
//		    					        ResultSet rs = null;
//		    					            String query = "";
//		    					            String key ="";
//		    						Connection conn = session.connection();
//
//		            stmt = conn.prepareStatement(SQL);
//		            stmt.setInt(1, keyValue);
//		            rs= stmt.executeQuery();
//		            oracle.sql.CLOB clobtt = null;
//		            if(rs.next()){
//		                clobtt = (oracle.sql.CLOB)rs.getClob(1);
//		            }
//		            Writer wr = clobtt.setCharacterStream(0L);
//		            try {
//						wr.write(content);
//					} catch (IOException e) {
//						// TODO Auto-generated catch block
//						e.printStackTrace();
//					}finally{
//		            try {
//						wr.flush();
//					} catch (IOException e) {
//						// TODO Auto-generated catch block
//						e.printStackTrace();
//					}
//		            try {
//						wr.close();
//					} catch (IOException e) {
//						// TODO Auto-generated catch block
//						e.printStackTrace();
//					}
//					}
//		    					}});
//		       
//		    }
//			 
//			 System.out.println(bs.length);
//		} catch (IOException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
		
		
//		System.out.println(Boolean.TYPE);
//		
//		
//		Test test=new Test();
//		
//		long starttime=System.currentTimeMillis();
//		for (int i = 0; i <1000000; i++) {
//			//Test test1=(Test) test.clone();
//			//new Test();
//			// test.newInstance();
//			Test test1= (Test) test.newInstance();
//			//System.out.println(test1);
//
//		}
//		System.out.println(System.currentTimeMillis()-starttime);
	}

	public Object newInstance() {
		try {
			return Test.class.newInstance();
		} catch (InstantiationException e) {
			e.printStackTrace();
			return null;
		} catch (IllegalAccessException e) {
			e.printStackTrace();
			return null;
		}

	}

	
	public Object clone() {
		try {
			return super.clone();
		} catch (CloneNotSupportedException e) {
			e.printStackTrace();
			return null;
		}
	}

}
